package dziennik.classes;
import dziennik.classes.*;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.Application;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.faces.model.SelectItem;

/**
 * 
 * <p>
 * Klasa Nauczyciel obrazuje nauczyciela, jej zadaniem jest dodawanie, usuwanie oraz educja 
 * listy przedmiotow, obecno�ci, ocen i uwag. Dodatkowa funkcja jest generowanie zestawienia,
 * ktore pozniej jest wyswietlane w odpowiednim oknie.
 * </p>
 * 
 * @author Lukasz Nowak
 *
 */
public class Nauczyciel extends Uzytkownik{
	private ArrayList<Uprawnienia> lista_uprawnien;
	private String wychowawca;
        
	/**
	 * 
	 * <p>Konstruktor bezparametrowy</p>
	 * 
	 */
	public Nauczyciel(){
		this.lista_uprawnien = new ArrayList<Uprawnienia>();
	}
	/**
	 * 
	 * <p>Konstruktor tworzacy obiekt z podanymi parametrami</p>
	 *
	 * @params String imie, String nazwisko, String login, String haslo
	 * 			ArrayList<Uprawnienia>,String wychowawca 
	 * 
	 */
	public Nauczyciel
	(
			String imie,
			String nazwisko,
			String login,
			String haslo,
			ArrayList<Uprawnienia> lista_uprawnienien,
			String wychowawca
			)
	{
		super(
				imie,
				nazwisko,
				login,
				haslo	
				);
		this.lista_uprawnien=lista_uprawnien;
		this.wychowawca=wychowawca;
	}
	
        ArrayList<SelectItem> lista_dziennikow = new ArrayList<SelectItem>();
        String nazwa_wybranego_dziennika;
        ArrayList<ArrayList> zestawienie;
        ArrayList<ArrayList<String>> tabela;



    public ArrayList<ArrayList<String>> getTabela() {
        return tabela;
    }

    public void setTabela(ArrayList<ArrayList<String>> tabela) {
        this.tabela = tabela;
    }





    public ArrayList getZestawienie() {
        return zestawienie;
    }

    public void setZestawienie(ArrayList zestawienie) {
        this.zestawienie = zestawienie;
    }

        
	/**
	 * 
	 * <p>Metody do pobierania listy uprawnien i wychowawcy</p>
	 * 
	 */
	public ArrayList<Uprawnienia> getLista_uprawnien(){return this.lista_uprawnien;}
	public String getWychowawca(){return this.wychowawca;}
	
	/**
	 * 
	 * <p>Metody do ustawiania listy uprawnien i wychowawcy</p>
	 * 
	 */
	public void setLista_uprawnien(ArrayList<Uprawnienia> lista){this.lista_uprawnien=lista;}
	public void setWychowawca(String text){this.wychowawca=text;}
	
	/**
	 * 
	 * <p>Metoda dodaje nowe uprawnienia nauczycielom</p>
	 *
	 * @params String dziennik,int upr
	 * 
	 */
	public boolean dodaj_do_listy_uprawnien(String dziennik, int upr){	//zwraca true gdy dodano wartosc, false gdy nie dodano (bo istnieje)
		boolean bool=false;
		int i;
		for (i=0;i<this.lista_uprawnien.size();i++)	//czy na liscie uprawnien sa uprawnienia do dziennika?
		{
			if (this.lista_uprawnien.get(i).getDziennik().equals(dziennik)) {bool=true; break;}		
		}
		if (bool==true)	//uprawnienia do dziennia znajduja sie na liscie
		{
			bool=this.lista_uprawnien.get(i).dodaj_do_listy_przedmiotow(upr);
		}
		else {	//uprawnienia do dziennika nie znajduja sie na liscie
			Uprawnienia uprawnienia = new Uprawnienia();	//dodawanie nowego uprawnienia (uprawnienie do dziennika)
			uprawnienia.setDziennik(dziennik);
			uprawnienia.dodaj_do_listy_przedmiotow(upr);
			this.lista_uprawnien.add(uprawnienia);			//dodanie uprawnienia do dziennika DO listy uprawnien nauczyciela
			bool=true;
		}		
		return bool;
	}
        
        public String pobierz_dzienniki() {
            lista_dziennikow.clear();
            try{
                ResultSet rs=Polaczenie.MySQL_zapytanie("select id, nazwa_dziennika from dzienniki");
		while(rs.next())
		{	
                    lista_dziennikow.add(new SelectItem(rs.getString("nazwa_dziennika"),rs.getString("nazwa_dziennika")));
                }
            }		
            catch (SQLException e)
            {
            	e.printStackTrace();
            }
        return null;
    }
        
        public String pobierz_liste_dziennikow(){
            String text;
            SelectItem select;
            ResultSet rs=Polaczenie.MySQL_zapytanie("select nazwa_dziennika from dzienniki");
            lista_dziennikow.clear();
            ArrayList<String> lista = new ArrayList<String>();
            ArrayList<String> listaZuprawnieniami = new ArrayList<String>();
            ArrayList<SelectItem> listaSelect = new ArrayList<SelectItem>();
            ArrayList<Uprawnienia> lista_uprawnien=null;
		try
		{
                        while(rs.next())
			{	
				lista.add(rs.getString("nazwa_dziennika"));
			}
		}
                catch (SQLException e)
                {
                	e.printStackTrace();
                }

                //temp
    
                Uzytkownik user;
                
                // DKA: pobieranie obiektu ziarna z application scope (w tym wypadku pobranie polaczenia)
                FacesContext facesContext = FacesContext.getCurrentInstance();
                Application application = facesContext.getApplication();
                ValueBinding binding = application.createValueBinding("#{uzytkownik}");
                user = (Uzytkownik)binding.getValue(facesContext);
                //----
                
                
                rs=Polaczenie.MySQL_zapytanie("select id, uprawnienia from nauczyciele where id="+user.getId());
                try {
                    rs.next();
                    lista_uprawnien = Polaczenie.deserializuj(rs.getBytes("uprawnienia"));
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }  		
                
                if (lista_uprawnien!=null && !lista_uprawnien.isEmpty()){
                    for (int i=0;i<lista_uprawnien.size();i++){
                        text=lista_uprawnien.get(i).getDziennik();
                        select=new SelectItem(text,text);
                        if (lista.contains(text) && listaZuprawnieniami.contains(select)==false){
                            listaZuprawnieniami.add(text);
                            lista_dziennikow.add(select);
                        }
                    }
                }
            return null;
        }
	
    public String wybierz_dziennik(){
        return "dziennik";
    }    
        
    public ArrayList<SelectItem> getLista_dziennikow() {
        return lista_dziennikow;
    }

    public void setLista_dziennikow(ArrayList<SelectItem> lista_dziennikow) {
        this.lista_dziennikow = lista_dziennikow;
    }
    
        
    public String getNazwa_wybranego_dziennika() {
        return nazwa_wybranego_dziennika;
    }

    public void setNazwa_wybranego_dziennika(String nazwa_wybranego_dziennika) {
        this.nazwa_wybranego_dziennika = nazwa_wybranego_dziennika;
    }
    
    public String pobierz_tabele() {

        tabela = new ArrayList<ArrayList<String>>();
        ArrayList<String> headers = new ArrayList<String>();
        ArrayList<String> wiersz = new ArrayList<String>();
        headers.add("Uczeń");
        headers.add("Język polski");
	headers.add("Matematyka");
	headers.add("Fizyka");
	headers.add("Chemia");
	headers.add("Technika");
	headers.add("Biologia");
	headers.add("Geografia");
	headers.add("Wiedza o społeczeństwie");
	headers.add("Historia");
	headers.add("Informatyka");
	headers.add("Sztuka");
	headers.add("Wychowanie do ż.w.r.");
	headers.add("Wychowanie fizyczne");
	headers.add("Język Angielski");
	headers.add("Język Niemiecki");
        headers.add("Religia");	
        headers.add("Średnia");
	headers.add("Nieobecności U.");
        headers.add("Nieobecności N.");
        headers.add("Spóźnienia");
        headers.add("Łącznie godzin");
                                   
        
        for (int i=0;i<headers.size();i++){
            wiersz = new ArrayList<String>();
            wiersz.add(headers.get(i));
            for (int j=0;j<zestawienie.size();j++){
                String text=""+zestawienie.get(j).get(i);
                if (i==0 || i>17){
                    text=text.substring(0, text.indexOf('.'));
                }
                else{
                    if (text.equals("NaN")) text="-";
                    if (text.length()>3) text=text.substring(0, text.indexOf('.')+3);
                }
                wiersz.add(text);
            }
        tabela.add(wiersz);
        }   
        
        return null;
    }
    
    
    
	/**
	 * 
	 * <p><Metoda dodaje pusta kolumn� ocen do konkretnego dziennika/p>
	 *
	 * @params Dziennik dz,Przedmiot przed,String naz,int wag
	 * 
	 */
//	public void dodaj_kolumne_ocen(Dziennik dz, Przedmiot przed, String naz, int wag)
//	{
//		ResultSet rs=Polaczenie.MySQL_zapytanie("select * from "+dz.getNazwa_dziennika());
//		try
//		{
//			rs.first();
//		do
//		{		
//				ArrayList<Przedmiot> prz = DziennikMain.polaczenie.deserializuj(rs.getBytes("przedmioty"));			
//				Uczen_klasy uk_nowy = new Uczen_klasy(rs.getInt("id"));
//				uk_nowy.setPrzedmioty(prz);
//			
//				int p_index=0;
//				for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();)
//				{
//					Przedmiot przedmiot = (Przedmiot)it.next();
//					p_index++;
//					if (przedmiot.getNazwa()==przed.getNazwa())break;
//				}
//			
//				uk_nowy.getPrzedmioty().get(p_index).getOceny().add(new Ocena(naz,0,wag));
//				rs.updateObject("przedmioty", DziennikMain.polaczenie.serializuj(uk_nowy.getPrzedmioty()));
//				rs.updateRow();
//				rs.next();
//		}while (!rs.isAfterLast());
//		}
//		catch (SQLException e)
//		{
//			e.printStackTrace();
//		}		
//	}
	
	/**
	 * 
	 * <p>Metoda s�u�y do edycji oceny w dzienniku</p>
	 *
	 * @params Dziennik dz,Uczen_klasy uk, String przed, Ocena oc
	 */
	
//	public void edytuj_ocene(Dziennik dz,Uczen_klasy uk, String przed, Ocena oc)
//	{
//		ResultSet rs=Polaczenie.MySQL_zapytanie("select * from "+dz.getNazwa_dziennika());
//		try
//		{
//			ArrayList<Przedmiot> prz = DziennikMain.polaczenie.deserializuj(rs.getBytes("przedmioty"));
//			rs.first();
//			do
//			{		
//				int num = rs.getInt("id");
//				if (num == uk.getId())
//				{
//						Uczen_klasy uk_nowy = new Uczen_klasy(num);
//						uk_nowy.setPrzedmioty(prz);
//
//						int p_index=0;
//						for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();){
//							Przedmiot przedmiot = (Przedmiot)it.next();
//							p_index++;
//							if (przedmiot.getNazwa()==przed)break;
//						}
//						int o_index=0;
//						for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();){
//							Ocena ocena = (Ocena)it.next();
//							o_index++;
//							if (ocena.getNazwa()==oc.getNazwa())break;
//						}
//					
//						uk_nowy.getPrzedmioty().get(p_index).getOceny().get(o_index).setWartosc(oc.getWartosc());
//			
//						rs.updateObject("przedmioty", DziennikMain.polaczenie.serializuj(uk_nowy.getPrzedmioty()));
//						rs.updateRow();
//				}
//				rs.next();
//			}while (!rs.isAfterLast());		
//        }
//		catch (SQLException e)
//		{
//			e.printStackTrace();
//		}
//	}
	/**
	 * 
	 * <p>Metoda usuwa kolumn� ocen z dziennika</p>
	 *
	 * @params Dziennik dz, Przedmiot przed, String nazwa
	 */
//	public void usun_kolumne_ocen(Dziennik dz, Przedmiot przed, String nazwa)
//	{
//		ResultSet rs=Polaczenie.MySQL_zapytanie("select * from "+dz.getNazwa_dziennika());
//		try
//		{
//			rs.first();
//			do
//			{	
//				ArrayList<Przedmiot> prz = DziennikMain.polaczenie.deserializuj(rs.getBytes("przedmioty"));			
//				Uczen_klasy uk_nowy = new Uczen_klasy(rs.getInt("id"));
//				uk_nowy.setPrzedmioty(prz);
//			
//				int p_index=0;
//				for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();)
//				{
//					Przedmiot przedmiot = (Przedmiot)it.next();
//					p_index++;
//					if (przedmiot.getNazwa()==przed.getNazwa())break;
//				}
//				
//				int o_index=0;
//				for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();)
//				{
//					Ocena ocena = (Ocena)it.next();
//					o_index++;
//					if (ocena.getNazwa()==nazwa)break;
//				}
//			
//				uk_nowy.getPrzedmioty().get(p_index).getOceny().remove(o_index);
//				rs.updateObject("przedmioty", DziennikMain.polaczenie.serializuj(uk_nowy.getPrzedmioty()));
//				rs.updateRow();
//				rs.next();
//			}while (!rs.isAfterLast());				
//		}
//		catch (SQLException e)
//		{
//			e.printStackTrace();
//		}		
//	}
	
	/**
	 * 
	 * <p>Metoda dodaje kolumn� obecno�ci do dziennika</p>
	 *
	 * @params Dziennik dz, Przedmiot przed, String data
	 */
//	public void dodaj_kolumne_obecnosci(Dziennik dz, Przedmiot przed, String data)
//	{
//		ResultSet rs=Polaczenie.MySQL_zapytanie("select * from "+dz.getNazwa_dziennika());
//		try
//		{
//			rs.first();
//			do
//			{	
//				ArrayList<Przedmiot> prz = DziennikMain.polaczenie.deserializuj(rs.getBytes("przedmioty"));			
//				Uczen_klasy uk_nowy = new Uczen_klasy(rs.getInt("id"));
//				uk_nowy.setPrzedmioty(prz);
//			
//				int p_index=0;
//				for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();)
//				{
//					Przedmiot przedmiot = (Przedmiot)it.next();
//					p_index++;
//					if (przedmiot.getNazwa()==przed.getNazwa())break;
//				}
//			
//				uk_nowy.getPrzedmioty().get(p_index).getObecnosci().add(new Obecnosc(data,'-'));
//				rs.updateObject("przedmioty", DziennikMain.polaczenie.serializuj(uk_nowy.getPrzedmioty()));
//				rs.updateObject("uwagi", DziennikMain.polaczenie.serializuj(uk_nowy.getUwagi()));
//				rs.updateRow();
//				rs.next();
//			}while (!rs.isAfterLast());	
//		}
//		catch (SQLException e)
//		{
//			e.printStackTrace();
//		}		
//	}
	/**
	 * 
	 * <p>Metoda edytuje obecno��</p>
	 *
	 * @params Dziennik dz,Uczen_klasy uk, String przed, Obecnosc obec
	 */
//	public void edytuj_obecnosc(Dziennik dz,Uczen_klasy uk, String przed, Obecnosc obec)
//	{
//		ResultSet rs=Polaczenie.MySQL_zapytanie("select * from "+dz.getNazwa_dziennika());
//		try
//		{
//			ArrayList<Przedmiot> prz = DziennikMain.polaczenie.deserializuj(rs.getBytes("przedmioty"));
//			rs.first();
//			do
//			{	
//				int num = rs.getInt("id");
//				if (num == uk.getId())
//				{
//						Uczen_klasy uk_nowy = new Uczen_klasy(num);
//						uk_nowy.setPrzedmioty(prz);
//
//						int p_index=0;
//						for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();){
//							Przedmiot przedmiot = (Przedmiot)it.next();
//							p_index++;
//							if (przedmiot.getNazwa()==przed)break;
//						}
//						int o_index=0;
//						for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();){
//							Obecnosc obecnosc= (Obecnosc)it.next();
//							o_index++;
//							if (obecnosc.getData()==obec.getData())break;
//						}
//					
//						uk_nowy.getPrzedmioty().get(p_index).getObecnosci().get(o_index).setRodzaj(obec.getRodzaj());
//			
//						rs.updateObject("przedmioty", DziennikMain.polaczenie.serializuj(uk_nowy.getPrzedmioty()));
//						rs.updateRow();
//				}
//				rs.next();
//				}while (!rs.isAfterLast());	
//		
//        }
//		catch (SQLException e)
//		{
//			e.printStackTrace();
//		}
//	}
	/**
	 * 
	 * <p>Metoda s�u�y do usuwania kolumny obecno�ci</p>
	 *
	 * @params Dziennik dz, Przedmiot przed, String data
	 */
//	public void usun_kolumne_obecnosci(Dziennik dz, Przedmiot przed, String data)
//	{
//		ResultSet rs=Polaczenie.MySQL_zapytanie("select * from "+dz.getNazwa_dziennika());
//		try
//		{
//			rs.first();
//			do
//			{	
//				ArrayList<Przedmiot> prz = DziennikMain.polaczenie.deserializuj(rs.getBytes("przedmioty"));			
//				Uczen_klasy uk_nowy = new Uczen_klasy(rs.getInt("id"));
//				uk_nowy.setPrzedmioty(prz);
//			
//				int p_index=0;
//				for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();)
//				{
//					Przedmiot przedmiot = (Przedmiot)it.next();
//					p_index++;
//					if (przedmiot.getNazwa()==przed.getNazwa())break;
//				}
//				
//				int o_index=0;
//				for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();)
//				{
//					Obecnosc obecnosc = (Obecnosc)it.next();
//					o_index++;
//					if (obecnosc.getData()==data)break;
//				}
//			
//				uk_nowy.getPrzedmioty().get(p_index).getObecnosci().remove(o_index);
//				rs.updateObject("przedmioty", DziennikMain.polaczenie.serializuj(uk_nowy.getPrzedmioty()));
//				rs.updateRow();
//				rs.next();
//			}while (!rs.isAfterLast());	
//			}
//		catch (SQLException e)
//		{
//			e.printStackTrace();
//		}		
//	}
	/**
	 * 
	 * <p>Metoda generuje zestawienie koncoworoczne</p>
	 *
	 * @params Dziennik dz
	 * 
	 * @return lista_uczniow
	 * 
	 */
public String generuj_zestawienie()
	{
            if (nazwa_wybranego_dziennika==null || nazwa_wybranego_dziennika.length()==0) return null;
            Polaczenie Polaczenie_bean;
            FacesContext facesContext = FacesContext.getCurrentInstance();
            Application application = facesContext.getApplication();
            ValueBinding binding = application.createValueBinding("#{polaczenie}");
            Polaczenie_bean = (Polaczenie)binding.getValue(facesContext);
            
            zestawienie = new ArrayList();
            
            Dziennik dziennik = new Dziennik(nazwa_wybranego_dziennika);
            ResultSet rs_dzienniki = Polaczenie_bean.MySQL_zapytanie("select id from dzienniki where nazwa_dziennika='"+nazwa_wybranego_dziennika+"'");
            ResultSet rs= null;
            try {
            	rs_dzienniki.first();
		rs=Polaczenie_bean.MySQL_zapytanie("select * from uczen_dziennik where id_dziennika='"+rs_dzienniki.getInt("id")+"' order by id asc");
                } catch (SQLException e1) {
		// TODO Auto-generated catch block
		e1.printStackTrace();
            }
            try{
		while(rs.next())
		{
                	Uczen_klasy uczen = new Uczen_klasy(
			rs.getInt("id_ucznia"),
			Polaczenie_bean.deserializuj(rs.getBytes("przedmioty")),
			Polaczenie_bean.deserializuj(rs.getBytes("uwagi"))
			);
                	dziennik.dodaj_ucznia_klasy(uczen);
		}
            }
            catch (SQLException ex)
            {
            ex.printStackTrace();
            }

            
            for(Iterator i=dziennik.getUczen_klasy().iterator();i.hasNext();)
            {
                ArrayList<Double> lista_dla_ucznia= new ArrayList<Double>();//zawiera srednie ocen z przedmiotow,srednia ogolna,nieobecnosci,nieobecnosci usprawiedliwione,spoznienia,ogolna liczbe godzin
		Uczen_klasy uk_nowy=(Uczen_klasy)i.next();
		lista_dla_ucznia.add((double) uk_nowy.getId());
		int l_przedmiotow=0;
		double suma=0;
		for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();)
		{
                    double srednia=0,suma_ocen=0,suma_wag=0;
                    Przedmiot przedmiot = (Przedmiot)it.next();
                    try
                    {
                        if (przedmiot != null && przedmiot.getOceny().get(0) != null)
			l_przedmiotow++;
			else
			continue;
                        }
			catch (IndexOutOfBoundsException e)
                        {
                            lista_dla_ucznia.add(Double.NaN);
                            continue;
			}
						
			int licznik=0;
			for (Iterator iter = przedmiot.getOceny().iterator(); iter.hasNext();){
                            Ocena ocena = (Ocena)iter.next();
                            if (ocena != null)
                            {
                                licznik++;
                                suma_ocen+=ocena.getWartosc()*ocena.getWaga();
                                suma_wag+=ocena.getWaga();
                            }
                            else {continue;}
			}
			srednia=suma_ocen/suma_wag;
			suma+=srednia;
			lista_dla_ucznia.add(srednia);
			System.out.println("Srednia = "+srednia);
			}
		    double srednia_ogolna=suma/l_przedmiotow;
                    lista_dla_ucznia.add(srednia_ogolna);//dopisujemy srednia ocene koncowa dla ucznia
		
                    double nieobecnosc=0;
                    double uspr=0;
                    double spoznienie=0;
                    double licznik_ob=0;
                    for (Iterator it = uk_nowy.getPrzedmioty().iterator(); it.hasNext();)
                    {
                        Przedmiot przedmiot = (Przedmiot)it.next();

                        for (Iterator iter = przedmiot.getObecnosci().iterator(); iter.hasNext();){
                            Obecnosc obecnosc = (Obecnosc)iter.next();
                            if(obecnosc.getRodzaj()=='-')nieobecnosc++;
                            if(obecnosc.getRodzaj()=='+')uspr++;
                            if(obecnosc.getRodzaj()=='s')spoznienie++;
                            licznik_ob++;
                        }
                    }
                    lista_dla_ucznia.add(nieobecnosc);
                    lista_dla_ucznia.add(uspr);
                    lista_dla_ucznia.add(spoznienie);
                    lista_dla_ucznia.add(licznik_ob);					

                    zestawienie.add(lista_dla_ucznia);//dla jednego ucznia zapisujemy liste srednich ocen z wszystkich przedmiotow
                    }	
		return this.pobierz_tabele();//metoda zwraca liste uczniow w ktorej kazdy wiersz zawiera liste srednich ocen i obesnosci
	}
	/**
	 * 
	 * <p>Metoda umo�liwia dodanie uwagi do dziennika</p>
	 *
	 * @params Dziennik dz,Uzytkownik wyst,Uczen_klasy uk, String tresc, String data,Przedmiot przed
	 * 
	 * 
	 */
//	public void dodaj_uwage(Dziennik dz,Uzytkownik wyst,Uczen_klasy uk, String tresc, String data,Przedmiot przed)
//	{
//		ResultSet rs=Polaczenie.MySQL_zapytanie("select * from "+dz.getNazwa_dziennika());
//		try
//		{
//			rs.first();
//			do
//			{	
//					int num = rs.getInt("id");
//					if (num == uk.getId())
//					{
//						ArrayList<Uwaga> uw = DziennikMain.polaczenie.deserializuj(rs.getBytes("uwagi"));						
//						Uczen_klasy uk_nowy = new Uczen_klasy(num);
//						uk_nowy.setUwagi(uw);
//						
//						uk_nowy.getUwagi().add(new Uwaga(tresc,data,wyst.getId(), false,Przedmiot.index_przedmiotu(przed.getNazwa())));					
//	            
//						rs.beforeFirst();								
//						while (rs.next())
//						{
//							int num2 = rs.getInt("id");
//							if (num2 == uk_nowy.getId())
//							{
//								rs.updateObject("uwagi", DziennikMain.polaczenie.serializuj(uk_nowy.getUwagi()));
//								rs.updateRow();
//							}
//						}
//					}
//					rs.next();
//			}while (!rs.isAfterLast());		    
//		}
//		catch (SQLException e)
//		{
//			e.printStackTrace();
//		}
//	}	
	/**
	 * 
	 * <p>Metoda umo�liwia edcje dziennika</p>
	 *
	 * @params Dziennik dz
	 * 
	 * 
	 */
//	public static void edytuj_dziennik(Dziennik dz){
//		
//		try{
//							
//		Statement st = dziennik.main.DziennikMain.connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
//		ResultSet rs_dzienniki = Polaczenie.MySQL_zapytanie("select id from dzienniki where nazwa_dziennika='"+dz.getNazwa_dziennika()+"'");
//		rs_dzienniki.first();
//		int id_dz = rs_dzienniki.getInt("id");
//		
//			ResultSet rs = Polaczenie.MySQL_zapytanie("SELECT id, id_ucznia, przedmioty, uwagi FROM uczen_dziennik where id_dziennika="+id_dz);
//			dziennik.main.DziennikMain.polaczenie.wyslij_dziennik(dz, rs);
//		}				
//		catch (SQLException e)
//		{
//			e.printStackTrace();
//		}
//
//	}	

}
